The present invention relates to message queuing in an asynchronous messaging network, and in particular to a method, system, and computer program product for monitoring message flow in a message queuing system.
It is increasingly common to distribute a data processing operation over a plurality of data processing units, with each of the units communicating over a data communications network such as the Internet. One reason for this is that a particular data processing unit may be able to do a job better than another, so a first unit makes a request for a second unit to do a particular job and then to return the result to the first unit.
It is also very common to have a large number of intermediate data processing units (also known as “nodes”) between the originating unit that makes a request and the destination unit that is being requested to do the work. Each intermediate unit receives the request, performs some initial processing to determine what to do with it, and then forwards it on to the next unit.
A popular mechanism for carrying out such distributed data processing is called asynchronous message queuing, wherein applications communicate with each other by sending messages to queues, which can then be accessed by the receiving application at a convenient time. IBM's WebSphere MQ (trademark) software product is an example of this type of software. More and more companies are providing services based on message queuing systems as underlying information transportation infrastructure.
A problem in such message queuing systems is to monitor message flow, especially to identify all of the applications involved in processing messages as well as their sequence of involvement. This problem becomes more important when using message queuing systems in a grid architecture, or whenever it is essential to ensure that a message has been processed in a predefined sequence by the authorized applications.
An example would be, as shown in FIG. 1 B, a service provider which provides business-to-business (B2B) services for other companies. A company A (Appl1) sends messages to the Service Provider which will be processed and then sent to the other company B (Appl5). However, there is no evident way for the two companies to ensure that the agreed applications have been used in the agreed sequence (Appl1, Appl2, Appl3, Appl4, Appl5) and that no other application has used or read their messages.